package bz.ziro.kanbe.dao;

import java.util.List;

import org.slim3.datastore.Datastore;

import com.google.appengine.api.datastore.Key;

import bz.ziro.kanbe.bean.Pager;
import bz.ziro.kanbe.meta.SiteTextMeta;
import bz.ziro.kanbe.model.SiteText;
import bz.ziro.kanbe.util.KeyFactory;

/**
 * テキストDao
 * @author Administrator
 */
public class SiteTextDao extends BaseDao<SiteText> {

	/**
	 * メタデータ
	 */
    private static final SiteTextMeta textMeta = new SiteTextMeta();

    /**
     * 検索
     * @param aKey
     * @return
     */
    public static SiteText find(Long aKey) {
        Key key = KeyFactory.createTextKey(aKey);
        return Datastore.query(textMeta).filter(textMeta.key.equal(key)).asSingle();
    }

    /**
     * 削除
     * @param aKey
     */
    public static void delete(Long aKey) {
        Key key = KeyFactory.createTextKey(aKey);
        Datastore.delete(key);
    }

    /**
     * ページング検索
     * @param pager
     * @return
     */
    public static List<SiteText> findPageList(Pager pager) {
        //ページのデータを取得
        return  Datastore.query(textMeta)
        			.offset(pager.getOffset()).limit(pager.getLimit())
        			.sort(textMeta.createDate.desc).asList();
    }

    /**
     * カウント
     * @return
     */
    public static int count() {
        return Datastore.query(textMeta).count();
    }
}
